package cn.iocoder.yudao.module.member.controller.admin.job.vo;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.util.Date;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
 * 招聘职位 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class MemberJobBaseVO {

    @ApiModelProperty(value = "企业id")
    private Long companyId;

    @ApiModelProperty(value = "企业名称", required = true, example = "香港中文大学")
    @NotNull(message = "企业名称不能为空")
    private String companyName;

    @ApiModelProperty(value = "所属行业", example = "软件开发")
    @NotNull(message = "所属行业不能为空")
    private String industry;

    @ApiModelProperty(value = "城市",  example = "上海")
    @NotNull(message = "城市不能为空")
    private String city;

    @ApiModelProperty(value = "职位名称", required = true, example = "Java技术专家")
    @NotNull(message = "职位名称不能为空")
    private String jobName;

    @ApiModelProperty(value = "薪资类型", required = true, example = "monthly_salary")
    @NotNull(message = "薪资类型不能为空")
    private String salaryUnit;

    @ApiModelProperty(value = "学历要求", required = true, example = "本科")
    @NotNull(message = "学历要求不能为空")
    private String education;

    @ApiModelProperty(value = "工作地址", required = true, example = "广东省深圳市")
    @NotNull(message = "工作地址不能为空")
    private String workAddress;

    @ApiModelProperty(value = "职位状态 编辑中draft/已发布enabled/已下架disabled/unpass审核不通过", example = "enabled")
    @NotNull(message = "职位状态不能为空")
    private String status;

    @ApiModelProperty(value = "职位点击量",example = "1524")
    @NotNull(message = "职位点击量不能为空")
    private Integer clickCount;

    @ApiModelProperty(value = "职位投递量",example = "5")
    @NotNull(message = "职位投递量不能为空")
    private Integer postCount;

    @ApiModelProperty(value = "置顶状态",example = "2")
    private String topStatus;

    @ApiModelProperty(value = "发布时间",example = "2022-04-28 17:52:12")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date publishTime;

    private String creator;

    private String updater;
    private String operation;
    private String department;

    @ApiModelProperty(value = "手机")
    private String phone;

    @ApiModelProperty(value = "邮箱")
    private String email;
    private String remark;
    private String jobLanguage;
    /**
     * 最低薪资
     */
    private Integer lowestSalary;
    /**
     * 最高薪资
     */
    private Integer highestSalary;

    @ApiModelProperty(value = "招聘人数",  example = "10")
    private Integer recruitmentCount;


    @ApiModelProperty(value = "招聘对象",  example = "graduates")
    private String identify;

    @ApiModelProperty(value = "实习周期",  example = "6个月")
    private String practicePeriod;

    @ApiModelProperty(value = "工作周期",  example = "两年")
    private String workPeriod;

    @ApiModelProperty(value = "福利标签",  example = "['五险一金','下午茶','过节补贴']")
    private String welfareTags;

    @ApiModelProperty(value = "职位描述", example = "岗位职责： 1、调研和研发资产交易平台及相关系统； 2、负责系统开发，系统设计，API接口设计，对外系统接入等； 3、解决相对复杂的技术问题，保障系统安全可靠。")
    private String jobDescription;
    @ApiModelProperty(value = "最新职位置顶(0:否,1:是)",example = "0")
    private Integer isNew;
    @ApiModelProperty(value = "热门职位置顶(0:否,1:是)",example = "0")
    private Integer isHot;

    @ApiModelProperty(value = "最新职位权重",example = "0")
    private Integer newWeight;
    @ApiModelProperty(value = "热门职位权重",example = "0")
    private Integer hotWeight;
    /**
     * 定时发布状态(0:无,1:定时发布,2:定时暂停)
     */
    @ApiModelProperty(value = "定时发布状态(0:无,1:定时发布,2:定时暂停)")
    private Integer timingStatus;
    /**
     *定时时间
     */
    @ApiModelProperty(value = "定时时间(精确到小时)")
    private String fixedTime;
    /*排序 */
    private Integer orderNum;
}
